package com.atguigu.bigdata.scala.chapter07

object Scala13_Collection_Req_1 {

    def main(args: Array[String]): Unit = {

        // TODO - 不同省份的商品点击排行
        // 将数据根据省份进行分组

        val list = List(
            ("zhangsan", "河北", "鞋"),
            ("lisi", "河北", "衣服"),
            ("wangwu", "河北", "鞋"),
            ("zhangsan", "河南", "鞋"),
            ("lisi", "河南", "衣服"),
            ("wangwu", "河南", "鞋"),
            ("zhangsan", "河南", "鞋"),
            ("lisi", "河北", "衣服"),
            ("wangwu", "河北", "鞋"),
            ("zhangsan", "河北", "鞋"),
            ("lisi", "河北", "衣服"),
            ("wangwu", "河北", "帽子"),
            ("zhangsan", "河南", "鞋"),
            ("lisi", "河南", "衣服"),
            ("wangwu", "河南", "帽子"),
            ("zhangsan", "河南", "鞋"),
            ("lisi", "河北", "衣服"),
            ("wangwu", "河北", "帽子"),
            ("lisi", "河北", "衣服"),
            ("wangwu", "河北", "电脑"),
            ("zhangsan", "河南", "鞋"),
            ("lisi", "河南", "衣服"),
            ("wangwu", "河南", "电脑"),
            ("zhangsan", "河南", "电脑"),
            ("lisi", "河北", "衣服"),
            ("wangwu", "河北", "帽子")
        )

        val groupDatas = list.groupBy(
            t => t._2
        )

        val newlist = groupDatas.mapValues(
            list => {
                // List( (word，1)，（word，1） )
                val wordlist = list.map(t=> (t._3,1))
            }
        )
        println(newlist)

        // 当分组操作和聚合操作在一起时，先聚合，再分组
        // word-count => groupBy (OK)
        // 100 => 5 => 2
        // groupBy => word-count (X)
        // 100 => 2 => 5

    }
}
